package com.zenithmind.task.pojo.dto;

import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.util.List;

/**
 * 任务分配DTO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
public class TaskAssignmentDTO {

    /**
     * 任务ID
     */
    @NotBlank(message = "任务ID不能为空")
    private String taskId;

    /**
     * 被分配人ID
     */
    @NotBlank(message = "被分配人ID不能为空")
    private String assigneeId;

    /**
     * 分配类型：1-主要负责人，2-协作者，3-审核者，4-观察者
     */
    @NotNull(message = "分配类型不能为空")
    private Integer assignmentType;

    /**
     * 角色权限：1-只读，2-编辑，3-管理
     */
    private Integer rolePermission;

    /**
     * 分配说明
     */
    @Size(max = 500, message = "分配说明长度不能超过500个字符")
    private String note;

    /**
     * 是否发送通知
     */
    private Integer sendNotification;

    /**
     * 截止时间
     */
    private String deadline;

    /**
     * 批量分配的用户ID列表
     */
    private List<String> assigneeIds;
}
